package com.zenithmind.chat.pojo.vo;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 私聊会话VO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ChatPrivateSessionVO {

    /**
     * 会话ID
     */
    private String id;

    /**
     * 对方用户ID
     */
    private String otherUserId;

    /**
     * 对方用户名称
     */
    private String otherUserName;

    /**
     * 对方用户头像
     */
    private String otherUserAvatar;

    /**
     * 对方显示名称（备注名称优先）
     */
    private String friendDisplayName;

    /**
     * 最后一条消息ID
     */
    private String lastMessageId;

    /**
     * 最后一条消息内容
     */
    private String lastMessageContent;

    /**
     * 最后一条消息时间
     */
    private LocalDateTime lastMessageTime;

    /**
     * 最后消息类型
     */
    private Integer lastMessageType;

    /**
     * 最后消息发送者ID
     */
    private String lastMessageSenderId;

    /**
     * 未读消息数
     */
    private Integer unreadCount;

    /**
     * 是否置顶
     */
    private Boolean isTop;

    /**
     * 是否免打扰
     */
    private Boolean isDisturbFree;

    /**
     * 对方是否在线
     */
    private Boolean isFriendOnline;

    /**
     * 对方最后活跃时间
     */
    private LocalDateTime friendLastActiveTime;

    /**
     * 会话状态（0-已删除，1-正常）
     */
    private Integer status;

    /**
     * 会话状态文本
     */
    private String statusText;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 是否被删除（当前用户视角）
     */
    private Boolean isDeleted;

    /**
     * 删除时间（当前用户视角）
     */
    private LocalDateTime deleteTime;

    /**
     * 是否有草稿
     */
    private Boolean hasDraft;

    /**
     * 草稿内容
     */
    private String draft;
}
